package cn.com.zpark.session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @PackageName: cn.com.zpark.session
 * @ClassName: SessionDemo07
 * @Description:
 * @author: RZS
 * @date: 2021/11/15  16:09
 */
@WebServlet("/sd7.do")
public class SessionDemo07 extends HttpServlet {
    /**
     * 功能要求：
     *      记录用户方法的时间
     *      如果用户是第一次访问，则返回本次访问时间
     *      如果用户不是第一次访问，则展示上一次访问时间和本次访问时间
     */
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取session对象
        HttpSession session = request.getSession();
        // 获取session中绑定用户访问的时间
        String date = (String)session.getAttribute("date");

        // 解决响应中文乱码问题
        response.setContentType("text/html;charset=utf-8");
        // 获取字符输出流对象
        PrintWriter w = response.getWriter();

        // 日期转换器
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 判断用户是不是第一次访问，判断date是否为null
        if(date == null){
            // 用户是第一次访问
            Date date1 = new Date();

            String str = format.format(date1);

            // 将当前时间保存到session对象中
            session.setAttribute("date", str);

            // 将当前访问的系统时间返回到浏览器
            w.write("<h1>这是你第一次访问本系统，访问时间为："+str+"</h1>");
        }else{
            // 用户不是第一次访问
            Date date1 = new Date();

            String str = format.format(date1);

            // 将当前时间保存到session对象中
            session.setAttribute("date", str);

            // 将本次访问的系统时间返回到浏览器
            w.write("<h1>本次访问本系统，访问时间为："+str+"</h1>");

            // 将上一次访问的系统时间返回到浏览器
            w.write("<h1>上一次访问本系统，访问时间为："+date+"</h1>");
        }

    }
}
